package cn.edu.ctgu;

public class YesterDate {

    // 判断是否为闰年
    public static boolean isLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }

    // 返回某年某月的天数
    public static int daysInMonth(int year, int month) {
        switch (month) {
            case 2:
                return isLeapYear(year) ? 29 : 28; // 2月，闰年29天，非闰年28天
            case 4:
            case 6:
            case 9:
            case 11:
                return 30; // 4月、6月、9月、11月有30天
            default:
                return 31; // 其他月份有31天
        }
    }

    // 计算前一天的日期
    public static int[] yesterDate(int year, int month, int day) {
        if (day > 1) {
            // 如果不是某个月的第一天，直接减一天
            return new int[]{year, month, day - 1};
        } else {
            // 如果是某个月的第一天
            if (month == 1) {
                // 如果是1月1日，前一天是上一年的12月31日
                return new int[]{year - 1, 12, 31};
            } else {
                // 其他月份，返回上个月的最后一天
                int prevMonth = month - 1;
                int prevDay = daysInMonth(year, prevMonth);
                return new int[]{year, prevMonth, prevDay};
            }
        }
    }

 
}